//对于axios进行二次封装【axios:js---底层promise】
//引入axios
import axios from 'axios';
import nprogress from 'nprogress';
//引入进度条的样式
import "nprogress/nprogress.css";
//请求拦截器|响应拦截器
//请求拦截器：可以在发请求之前，可以做一些事情！！！！
axios.interceptors.request.use((config) => {
    //config:请求拦截器触发的时候传入配置对象【请求头:可以给服务器携带参数】
    //发请求之前：让进度条开始动
    nprogress.start();
    return config;
});
//相应拦截器
axios.interceptors.response.use((res) => {
    //res是服务器响应回来的数据
    //将来获取数据的时候，简化一些
    //进度条结束
    nprogress.done();
    return res.data;
}, (error) => {
    //响应失败的回调
    //终止Promise链
    return Promise.reject(new Error());
});

export default axios;